9 research outputs found

    A technique for detecting wait-notify deadlocks in Java

    Get PDF
    Deadlock analysis of object-oriented programs that dynamically create threads and objects is complex, because these programs may have an infinite number of states. In this thesis, I analyze the correctness of wait - notify patterns (e.g. deadlock freedom) by using a newly introduced technique that consists in an analysis model that is a basic concurrent language with a formal semantic. I detect deadlocks by associating a Petri Net graph to each process of the input program. This model allows to check if a deadlock occur by analysing the reachability tree. The technique presented is a basic step of a more complex and complete project, since in my work I only consider programs with one object

    A Formal Analysis of the Bitcoin Protocol

    Get PDF
    none2noWe study Nakamoto’s Bitcoin protocol that implements a distributed ledger on peer-to-peer asynchronous networks. In particular, we define a principled formal model of key participants - the miners - as stochastic processes and describe the whole system as a parallel composition of miners. We therefore compute the probability that ledgers turn into a state with more severe inconsistencies, e.g. with longer forks, under the assumptions that messages are not lost and nodes are not hostile. We also study how the presence of hostile nodes mining blocks in wrong positions impacts on the consistency of the ledgers. Our theoretical results agree with the simulations performed on a probabilistic model checker that we extended with dynamic datatypes in order to have a faithful description of miners' behaviour.openAdele Veschetti, Cosimo LaneveAdele Veschetti, Cosimo Lanev

    A formal analysis of blockchain consensus

    Get PDF
    In this thesis, we analyse these protocols using PRISM+, our extension of the probabilistic model checker PRISM with blockchain types and operations upon them. This allows us to model the behaviour of key participants in the protocols and describe the protocols as a parallel composition of PRISM+ processes. Through our analysis of the Bitcoin model, we are able to understand how forks (where different nodes have different versions of the blockchain) occur and how they depend on specific parameters of the protocol, such as the difficulty of the cryptopuzzle and network communication delays. Our results corroborate the statement that considering confirmed the transactions in blocks at depth larger than 5 is reasonable because the majority of miners have consistent blockchains up-to that depth with probability of almost 1. We also study the behaviour of the Bitcoin network with churn miners (nodes that leave and rejoin the network) and with different topologies (linear topology, ring topology, tree topology and fully connected topology). PRISM+ is therefore used to analyse the resilience of Hybrid Casper when changing various basic parameters of the protocol, such as block creation rates and penalty determination strategies. We also study the robustness of Hybrid Casper against two known attacks: the Eclipse attack (where an attacker controls a significant portion of the network's nodes and can prevent other nodes from receiving new transactions) and the majority attack (where an attacker controls a majority of the network's nodes and can manipulate the blockchain to their advantage)

    La base di Bernstein in spazi polinomiali generalizzati a tratti

    No full text
    Le funzioni polinomiali possono essere utilizzate per approssimare le funzioni continue. Il vantaggio è che i polinomi, le loro derivate e primitive, possono essere rappresentati in maniera semplice attraverso i loro coefficienti ed esistono algoritmi stabili e veloci per valutarli. Inoltre gli spazi polinomiali godono di numerose proprietà importanti. In questo lavoro ci occuperemo di altri spazi funzionali, noti in letteratura come spazi di Chebyshev o polinomi generalizzati, per ragioni di riproducibilità. Infatti ciò che si ottiene attraverso i polinomi è soltanto una approssimazione che spesso risulta essere insufficiente. E' importante, quindi, considerare degli spazi in cui sia possibile avere una rappresentazione esatta di curve. Lo studio di questi spazi è possibile grazie alla potenza di elaborazione degli attuali calcolatori e al buon condizionamento di opportune basi di rappresentazione di questi spazi. Negli spazi polinomiali è la base di Bernstein a garantire quanto detto. Negli spazi di Chebyshev si definisce una nuova base equivalente. In questo lavoro andremo oltre gli spazi di Chebyshev ed approfondiremo gli spazi di Chebyshev a tratti, ovvero gli spazi formati dall'unione di più spazi del tipo precedente. Si dimostrerà inoltre l'esistenza di una base a tratti con le stesse proprietà della base di Bernstein per gli spazi polinomiali

    PRISM+

    No full text
    PRISMisaprobabilisticmodelchecker,atoolforformalmodellingandanal- ysis of systems that exhibit random or probabilistic behaviour. We extend the language in order to model the Bitcoin system. The tool now supports three dynamic data types: block, ledger and list. As consequence, it is now possible to perform simulations and analyse transient probabilities, i.e. probabilities that are dependent on time, for the Bitcoin protocol. It has been used to under- stand how the system changes during the execution and to analyse the probabilities of reaching an inconsistent state in different settings

    A Formal Analysis of the Bitcoin Protocol

    No full text
    We study Nakamoto\u2019s Bitcoin protocol that implements a distributed ledger on peer-to-peer asynchronous networks. In particular, we define a principled formal model of key participants - the miners - as stochastic processes and describe the whole system as a parallel composition of miners. We therefore compute the probability that ledgers turn into a state with more severe inconsistencies, e.g. with longer forks, under the assumptions that messages are not lost and nodes are not hostile. We also study how the presence of hostile nodes mining blocks in wrong positions impacts on the consistency of the ledgers. Our theoretical results agree with the simulations performed on a probabilistic model checker that we extended with dynamic datatypes in order to have a faithful description of miners' behaviour

    A Formal Analysis of the Bitcoin Protocol

    No full text
    International audienceWe study Nakamoto's Bitcoin protocol that implements a distributed ledger on peer-to-peer asynchronous networks. In particular, we define a principled formal model of key participants-the miners-as stochastic processes and describe the whole system as a parallel composition of miners. We therefore compute the probability that ledgers turn into a state with more severe inconsistencies, e.g. with longer forks, under the assumptions that messages are not lost and nodes are not hostile. We also study how the presence of hostile nodes mining blocks in wrong positions impacts on the consistency of the ledgers. Our theoretical results agree with the simulations performed on a probabilistic model checker that we extended with dynamic datatypes in order to have a faithful description of miners' behaviour

    Pacta sunt servanda: Legal contracts in Stipula

    No full text
    We present Stipula, a domain specific language that may assist legal practitioners in programming legal contracts through specific patterns. The language is based on a small set of programming abstractions that correspond to common patterns in legal contracts. We illustrate the language by means of two paradigmatic legal contracts: a bike rental and a bet contract. Stipula comes with a formal semantics, an observational equivalence and a type inference system, that provide for a clear account of the contracts' behaviour and illustrate how several concepts from concurrency theory can be adapted to automatically verify the properties and the correctness of software-based legal contracts. We also discuss a prototype centralized implementation of Stipula
    corecore